// 添加一个新的 composable 用于处理配置存储
// /composables/useChartConfig.js
import { ref, watch } from 'vue'

const LOCAL_STORAGE_KEY = 'chart_config'

export function useChartConfig() {
    // 从本地存储加载配置
    const loadConfig = () => {
        try {
            const savedConfig = localStorage.getItem(LOCAL_STORAGE_KEY)
            return savedConfig ? JSON.parse(savedConfig) : null
        } catch (error) {
            console.error('Error loading config:', error)
            return null
        }
    }

    // 保存配置到本地存储
    const saveConfig = (config) => {
        try {
            localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(config))
        } catch (error) {
            console.error('Error saving config:', error)
        }
    }

    // 默认配置
    const defaultConfig = {
        showChartTypes: true,
        showPeriodSelector: true,
        enabledChartTypes: ['line', 'bar'],
        enabledPeriods: ['daily', 'weekly', 'monthly', 'yearly']
    }

    // 初始化配置，优先使用保存的配置，如果没有则使用默认配置
    const config = ref(loadConfig() || defaultConfig)

    // 监听配置变化并保存
    watch(config, (newConfig) => {
        saveConfig(newConfig)
    }, { deep: true })

    return {
        config
    }
}